// 导入依赖的模块
yepjs.require("jquery");
yepjs.require("YBA.Common");
yepjs.require("YBA.Plugin.plugins");
yepjs.require("YBA.Plugin.wdatePicker");
yepjs.require("YBA.Data.Terminal");

// 终端管理 - 终端列表管理
yepjs.define("list", {

    NS: "YBA.Logic.Terminal",

    field: function() {

        var Biz = {
            // 初始化事件
            init: function() {

                Biz.fn.getList(function (json) {

                    // 设置初始列表项目的数量，创建分页控件需要使用该数量
                    Biz.vars.totalNum = json.page.totalRecord;

                    for (var i in Biz.event) {
                        Biz.event[i]();
                    }
                });
            },
            //  公共变量
            vars: {
                // 模板列表
                tpl: (function(){
                    var tpl = {};
                    $("script[type='text/ysmart']").each(function(){
                        var t = $(this);
                        tpl[t.attr("data-name")] = t.html();
                    });
                    return tpl;
                })(),
                // 报表搜索字段
                searchVar: {
                	//name:"",              //数据源名称  String  可选
                	status:"",			  //运行状态    String  可选
                	dsStatus:"",		  //数据源状态	String  可选
                	backupType:"",		  //备份方式    String  可选
                    startPos: 1,          // 当前页码   String  必选, 最小值为1
                    pageSize: 18          // 数据条数   String  必选
                },
                // 列表项目的总数量
                totalNum: 0,
                // 分页控件引用
                pageCtrl: null
            },
            // 页面元素
            el: {
                body: $("body"),
                jstatus: $("#j-status"),
                jdsStatus: $("#j-dsStatus"),
                jbackupType:$("#j-backupType"),
                jname: $("#j-name"),
                jpage: $("#j-page"),
                jlist: $("#j-list"),
                jallObj:$(".j-checkAll"),
                jtotalNum: $("#j-totalNum")
            },
            // 功能函数集合
            fn: {
                // 读取终端列表
                getList: function (callback) {
                    YBA.Data.Terminal.getDataSourceList(Biz.vars.searchVar, function (json) {
                        if(json.code == 200) {
                            Biz.el.jlist.html(YBA.Common.ysmart(Biz.vars.tpl.list, json.list));
                            Biz.el.jtotalNum.html(json.page.totalRecord);

                            Biz.vars.pageCtrl && Biz.vars.pageCtrl.setTotalNum(json.page.totalRecord);

                            callback && callback(json);
                        }else{
                            YBA.Plugin.msgtip({type: "i", msg: json.desc})
                        }
                    });
                },
                //数据源详情弹窗
                detailForm:function(json){
                    var popform = new YBA.Plugin.popform({
                        title:"数据源详情",
                        className:"ui-dialog-sourceDetail",
                        content:YBA.Common.ysmart(Biz.vars.tpl.sourceDetailTpl,json || {}),
                        width:1000,
                        destroy:true,
                        onHide: function () {
                            // 隐藏弹窗时要执行的回调函数
                        },
                        onShow:function(){
                            // 显示弹窗时要执行的回调函数
                        }
                    }).show();
                },
                //获取数据源详情
                getDataSourceDetail:function(data,callback){
                    YBA.Data.Terminal.getDataSourceDetail(data,function(json){
                        if(json.code == 200) {
                            callback&&callback(json.obj);
                        }else{
                            YBA.Plugin.msgtip({type: "i", msg: json.desc});
                        }
                    })
                }
            },
            // 初始化时执行的所有事件
            event: {
                // 搜索
                search: function () {
                    // 点击“查询”时，设置搜索条件
                    Biz.el.body.delegate(".j-search", "click", function () {
                        Biz.vars.searchVar.name = Biz.el.jname.val();
                        Biz.vars.searchVar.status = Biz.el.jstatus.val();
                        Biz.vars.searchVar.dsStatus = Biz.el.jdsStatus.val();
                        Biz.vars.searchVar.backupType = Biz.el.jbackupType.val();
                        Biz.vars.searchVar.startPos = 1;

                        Biz.vars.pageCtrl.setPageIndex(1);

                        Biz.fn.getList();
                    });

                    // 点击“重置”时，重置搜索条件
                    Biz.el.body.delegate(".j-reset", "click", function () {

                        Biz.el.jname.val("");
                        Biz.el.jstatus.val("");
                        Biz.el.jdsStatus.val("");
                        Biz.el.jbackupType.val("");

                        Biz.vars.searchVar.name = "";
                        Biz.vars.searchVar.status = "";
                        Biz.vars.searchVar.dsStatus = "";
                        Biz.vars.searchVar.backupType = "";
                        Biz.vars.searchVar.startPos = 1;

                        Biz.vars.pageCtrl.setPageIndex(1);

                        Biz.fn.getList();
                    });
                },
                // 分页
                pageNav: function () {
                    // 创建分页控件
                    Biz.vars.pageCtrl = new YBA.Plugin.pageNav({
                        // 放置分页控件的容器
                        pageCon: Biz.el.jpage,
                        // 每页数量
                        pageSize: Biz.vars.searchVar.pageSize,
                        // 总数量
                        totalNum: Biz.vars.totalNum,
                        // 回调函数
                        callback: function (pageIndex) {
                            // 设置页次
                            Biz.vars.searchVar.startPos = pageIndex;
                            // 执行搜索
                            Biz.fn.getList();
                        }
                    });
                },
                //复选框全选
                checkAll:function(){
                    YBA.Plugin.checkAll({
                        allObj:Biz.el.jallObj,
                        eachObj:$(".j-checkEach"),
                        list:$("#j-list")
                    })
                },
              //查看数据源明细
                seeDetail:function(){
                    Biz.el.jlist.delegate(".j-admin","click",function(){
                        var t = $(this), tr = t.closest("tr"), id = tr.attr("data-id");
                        var data = {
                            "id":id
                        };
                        Biz.fn.getDataSourceDetail(data,function(json){
                            Biz.fn.detailForm(json);
                        });
                    })
                }
            }
        };

        Biz.init();

        return Biz;
    }
});
